package com.sdhs.costcontrol.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.sdhs.costcontrol.domain.ControlContract;
import com.sdhs.costcontrol.domain.GcControlContractPay;

/**
 * 合同支付跟踪Mapper接口
 * 
 * @author wanglei
 * @date 2025-03-14
 */
public interface GcControlContractPayMapper 
{
	/**
	 * 根据主合同编号查询其下最新的子合同
	 * @param list
	 * @return
	 */
	public List<ControlContract> selectSubContract(@Param("list") List<String> list);
	
    /**
     * 查询合同支付跟踪
     * 
     * @param id 合同支付跟踪主键
     * @return 合同支付跟踪
     */
    public GcControlContractPay selectGcControlContractPayById(Long id);
    /**
     * 根据项目id和合同id查询累计数据
     *
     * @param projectId 项目id
     * @param contractId 合同id
     * @return 合同支付跟踪
     */
    public GcControlContractPay selectControlContractPayByProjectId(@Param("projectId")Long projectId, @Param("contractId")String contractId);

    /**
     * 查询合同支付跟踪列表
     * 
     * @param gcControlContractPay 合同支付跟踪
     * @return 合同支付跟踪集合
     */
    public List<ControlContract> selectGcControlContractPayList(GcControlContractPay gcControlContractPay);

    /**
     * 新增合同支付跟踪
     * 
     * @param gcControlContractPay 合同支付跟踪
     * @return 结果
     */
    public int insertGcControlContractPay(GcControlContractPay gcControlContractPay);

    /**
     * 修改合同支付跟踪
     * 
     * @param gcControlContractPay 合同支付跟踪
     * @return 结果
     */
    public int updateGcControlContractPay(GcControlContractPay gcControlContractPay);

    /**
     * 删除合同支付跟踪
     * 
     * @param id 合同支付跟踪主键
     * @return 结果
     */
    public int deleteGcControlContractPayById(Long id);

    /**
     * 批量删除合同支付跟踪
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteGcControlContractPayByIds(Long[] ids);
}
